
package com.xbongbong.pro.statistic.model;

import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.pro.domain.entity.ChartEntity;

import java.util.List;
import java.util.Map;

/**
 * @author autoGen
 * @time 2019-01-07 11:13:40
 */
public interface ChartCustomModel extends IModel<ChartEntity> {

	@Override
	List<ChartEntity> findEntitys(Map<String, Object> param);

	List<ChartEntity> findMutiEntitys(Map<String, Object> param);
	List<ChartEntity> findDiyEntitys(Map<String, Object> param);

	/**
	 * 保存
	 * @param entity 实体
	 * @return
	 * @throws
	 *
	 * @author hongxiao
	 * @date: 2019-02-22 15:07
	 * @since v1.0
	 * @version v1.0
	 */
	Integer save(ChartEntity entity);

    /**
     * 批量插入数据
     *
     * @param entityList 实体列表
     * @author GuoJun.HU
     * @date 2019/2/18 22:07
     * @since V1.0
     */
    void insertBatch(List<ChartEntity> entityList);

    /**
     * 通过主键删除
     *
     * @param key    主键
     * @param corpid 公司id
     * @return Integer
     * @author GuoJun.HU
     * @date 2019/2/18 22:07
     * @since V1.0
     */
    Integer deleteByKey(Long key, String corpid);

    /**
     * 通过主键获取数据
     *
     * @param key    主键
     * @param corpid 公司id
     * @return ChartEntity
     * @author GuoJun.HU
     * @date 2019/2/18 22:08
     * @since V1.0
     */
    ChartEntity getByKey(Long key, String corpid);

    /**
     * 根据分类id获取图表列表
     *
     * @param corpid     公司id
     * @param categoryId 分类id
     * @return java.util.List<com.xbongbong.pro.domain.entity.ChartEntity>
     * @author zcp
     * @date 2019/1/16 15:31
     * @version v1.0
     * @since v1.0
     */
    List<ChartEntity> getChartListByCategoryId(String corpid, Long categoryId);

	/**
	 * 判断同名的指标是否存在
	 * @param corpid 公司id
	 * @param name 名称
	 * @param setId 指标名称
	 * @param chartType 指标类型
	 * @return
	 * @throws
	 *
	 * @author hongxiao
	 * @date: 2019-02-01 11:22
	 * @since v1.0
	 * @version v1.0
	 */
	boolean checkRepeat(String corpid, String name, Long setId, Integer chartType);

	/**
	 * 获取业绩目标指标
	 *
	 * @param corpid    公司id
	 * @param enable    是否启用
	 * @param chartType 报表类型枚举ChartTypeEnum.PERFORMANCE对应的code(16为业绩目标）
	 * @return 目标list
	 * @author hongxiao
	 * @date: 2019-01-30 15:24
	 * @version v1.0
	 * @since v1.0
	 * @update by zcp 从main-service移入 2019-03-27
	 */
	List<ChartEntity> getList(String corpid, Integer enable, Integer chartType);

	ChartEntity getSearch(String corpid, Long categoryId);

	List<ChartEntity> getStockChartList();

	/**
	 * 批量更新enable
	 * @param param 查询参数map
	 * @author xingxing.xiao
	 */
	void batchUpdateEnable(Map<String, Object> param);

	void batchUpdateNumFormat(String corpid, List<Long> idIn, Integer numFormat);

    List<ChartEntity> getReturnStockChartList();

	void updateBatch(List<ChartEntity> chartEntityList,  String corpid);

	/**
	 * 刷脚本用，不根据corpid批量更新数据
	 * @param chartEntityList 实体信息
	 */
	@Deprecated
	void updateBatchNoCorpId(List<ChartEntity> chartEntityList);

	/**
	 * 批量更新平均线
	 */
	/**
	 * @param corpidIn 公司
	 * @return 更新结果
	 */
	void updateBatchAve(List<String> corpidIn);

	/**
	 * 批量更新图表的删除标识的值
	 *
	 * @param shouldDeleteIds
	 * @param del
	 */
	void updateBatchDeleteTag(List<Long> shouldDeleteIds, Integer del);
}

 
